#ifndef MTVARIABLEDEFINITION_H
#define MTVARIABLEDEFINITION_H

#include "MTStatement.hpp"
#include "MTIdentifier.hpp"
#include "Params.h"

namespace MathematicaTranslator {

	/**
	  *  Variable definition representation
	  */
	class MTVariableDefinition : public MTStatement {

	public:
		MTIdentifier &id;
		MTExpression *assignExpression;

		MTVariableDefinition(MTIdentifier &id, MTExpression *assignExpression) 
			: id(id), assignExpression(assignExpression) {}

		/**
		   * not initialized value - actually formal argument list 
		   * \note DEPRECATED use MTVariableDeclaration instead
		   */
		MTVariableDefinition(MTIdentifier &id) 
			: id(id) {}

		virtual std::string* generateCode(CodeGenContext& context);
	};

}
#endif
